Giter VIP home page Giter VIP logo

markdown-maker's Introduction

Hi there 👋

I'm a developer and technical architect, working primarily for central government, health and financial services in the UK. I specialise in the Microsoft cloud space - Azure, Dynamics365 and Business intelligence

Here's some of the (largely extracurricular!) projects I'm working on

Dataverse (Dynamics 365/CDS)

  • cds-core -> Helpers and extension classes for D365 extension
  • cds-customisation -> Automate common customisation and configuration tasks such as entity creation, plugin registration, and migrating non-solution aware components
  • power-portal-test-framework -> Basic test framework extending selenium web driver for Dynamics Portals
  • power-portal-gds-accelerator -> All the portal configuration records required to set up a new portal using UK GDS patterns
  • power-portal-gds-test -> Extends the portal test framework for the GDS portal accelerator

Azure

  • cds-integration -> (In progress) D365 integration accelerator including Azure Functions apps, Service bus, KeyVault store, App insights, Blob storage and ARM templates
  • cds-sharepoint -> (In progress) Resolve standard SharePoint service throttling issues; Synchronise security, access models and metadata between D365 and SharePoint

GDS Templates

General

  • markdown-maker -> Lightweight library to assist creation of .md files (in GitHub and DocFx styles)
  • style-guide-and-best-practices -> Guide on code style, documentation and project artifacts. Can be user as a basis for projects when no prior baseline exists

markdown-maker's People

Contributors

cloud-awesome avatar

Watchers

 avatar

markdown-maker's Issues

Override methods which take an MdPlainText input to only provide a string

Started implementing during test refactoring, but most of the methods take this as an input.

e.g.

var table = new MdTable()
  .AddColumn("First Column")
  .AddColumn("Second Column")
  .AddColumn("Third Column");

instead of

var table = new MdTable()
  .AddColumn(new MdPlainText("First Column"))
  .AddColumn(new MdPlainText("Second Column"))
  .AddColumn(new MdPlainText("Third Column"));

Keep the original for backwards compatibility though

Add a basic POCO - Markdown converter

  1. Create a document passing a POCO in the constructor
public MdDocument(string fileName, IDocumentMe pocoClass, IFileSystem fileSystem = null)
  1. Create a document passing in a list of POCOs in the constructor
public MdDocument(string fileName, IEnumerable<IDocumentMe> pocoClasses, 
            IFileSystem fileSystem = null)
  1. Create a new IDocumentPart type to enable it to be embedded into a wider document

Add support for nested lists within MdList

e.g.

var numberedList = new MdList(MdListType.Ordered)
    .AddItem("First point")
    .AddItem("Second point")    
    .AddChildList(new MdList(MdListType.Ordered) {
        .AddItem("First child")
        .AddItem("Second child")
    })
    .AddItem("Third point")
    .AddItem("Fourth point");

produces:

- First point
- Second point
    - First child
    - Second child
- Third point
- Fourth point

rendered as:

  • First point
  • Second point
    • First child
    • Second child
  • Third point
  • Fourth point

Extend tests with real integration test project

Exclude these from PR/Build pipelines, but include for local Dev and for repo consumers to run locally to actually produce real files (not mocking the filesystem...)

Also, ensure they're excluded from any Code Coverage metrics (locally and on SonarCloud)

Create an extension to generate a DocFX yaml content file

Admittedly, it's not markdown at all, but it's a very quick, simple and useful addition (c.f. the DocfxYamlHeader class) and fits well with the other DocFX functionality so may as well keep them all together!

Related to #15

e.g.

var landingPage = new DocfxYamlFile(someFolderLandingPage)
// where someFolderLandingPage is a POCO object, based on a JSON schema

Override constructors to accept an array of children as opposed to using the .Add() methods

e.g. use

var quote = new MdQuote()
{
    "All the world’s a stage, and all the men and women merely players.",
    "They have their exits and their entrances;",
    "And one man in his time plays many parts."
};

on top of the existing

var quote = new MdQuote()
    .AddLine(new MdPlainText("All the world’s a stage, and all the men and women merely players."))
    .AddLine(new MdPlainText("They have their exits and their entrances;"))
    .AddLine(new MdPlainText("And one man in his time plays many parts."));

Both are required.

Add AzDO wiki support

On top of Fitting and DocFX, as support for Azure DevOps wikis

e.g. code takes ::: instead of ```

Default to GFM but allow allow optimal parameter for AzDO flavour...

Add MdDocumentSet

To allow for the generation of multiple .md files in one .save call

e.g.

const string folderPath = "c:/output-documents/";

var documentSet = new MdDocumentSet(folderPath)
    .AddDocument(new MdDocument(...)
    .AddDocument(new MdDocument(...)
    .AddDocument(new MdDocument(...)
    .Save(); 

Good use cases for this are:

  • Validate everything before generating anything
  • Potentially expensive I/O calls can be saved to a single point, as opposed to every loop round a for each, etc.

Add MdStrikeThroughText

e.g.

var comment = new MdStrikeThroughText("This is a now redundant");

produces

~~This is a now redundant~~

for this:

This is a now redundant

Extend inputs to accept more than just MdPlainText

Things like MdTable.AddColumn() should be able to accept MdBoldText etc. as well as plain text

(c.f. MdItalicText, but better)

These currently accept MdPlainText or string:

  • MdTable.AddColumn()
  • MdTableRow.AddCell()
  • MdList.AddItem()
  • MdQuote.AddLine()

These currently accept just a string:

  • MdImage()
  • MdLink()

Add MdFootNote for GitHub footnotes

e.g.

// This can be included in an MdParagraph instance
var footnote = new MdFootNote{
    Reference: "1", // produces [^1] in markdown
    Footnote: new MdParagraph("This is the text, that can include other children such as MdLink, etc. etc.")
};

N.B. An MdDocument instance will need a private dictionary of all footnotes, not just the usual .MarkDown getter used in other classes, that they can be processed at the end of the document.

Don't think this is supported outside of GitHub (yet?). Should it be included in a GitHub-specific namespace?

Add DocFx metadata element

e.g. something to replace this:

var docfxMetadata = 
    "---" + Environment.NewLine +
    "uid: this_is_a_tester" + Environment.NewLine +
    "---";

new MdDocFxMetadata(key, value)

Add MdComment

e.g.

var comment = new MdComment("This is a comment");

produces

<!-- This is a comment -->

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.