docc2html - A static site generator for DocC documentation archives

Overview

docc2html

Tool to convert "DocC" archives, a format to document Swift frameworks and packages: Documenting a Swift Framework or Package, to a static HTML site.

Blog entry on the topic: DocC 📚 Archived and Analyzed.

Usage

First grab the package:

$ git clone https://github.com/DoccZz/docc2html.git
$ cd docc2html

Then run it on your .doccarchive:

$ swift run docc2html ~/Downloads/SlothCreator.doccarchive /tmp/SlothCreator/docs

This will create the static site in /tmp/SlothCreatorSite. The root documentation can be directly opened in the browser, e.g.

open file:/tmp/SlothCreatorSite/documentation/slothcreator/index.html

Status

2021-07-10

I think it is somewhat reasonable now. Templates (and Site.css) can be customized using external files. If willing to ajust the CSS to your own liking, it might be reasonable to use docc2html for something real.

2021-07-06

Well, it's getting closer and the source code starts to be quite reasonable as well. Though you can still tell it started as a quick hack.

2021-07-03

It's not ready for production yet, needs some more work.

This is a very quick hack/PoC full of quirks, and pretty incomplete. But it has working parts and we invite everyone to improve it and provide PRs. Or ignore it and come up with an own exporter base on the ideas (and possibly DocCArchive).

The tool is, as of today, just tested against the SlothCreator example.

It does not export tutorials yet, only the documents in the documentation folder.

It's not much yet, but a pretty good starting point.

TODO

  • better API doc templates
  • improve tutorial templates
  • better CSS
  • refactor code into a proper type and module for easier reuse
  • drop dependency on Macro
  • support Mustache templates in the filesystem! (for customization & faster testing)
  • generate proper index.html

Using it on GitHub

We didn't try yet 🥸 But hope to be able to move the SwiftBlocksUI Documentation to that. Going to take some time until it's possible.

The GH action would need to:

  • patch the Package.swift version to 5.5
  • run the xcodebuild -doc thing to produce the DocC archives
  • use docc2html on each of the archives
  • publish the result to GH Pages

Who

docc2html is brought to you by the Always Right Institute and ZeeZide. We like feedback, GitHub stars, cool contract work, presumably any form of praise you can think of.

Comments
  • KeyNotFound

    KeyNotFound

    Hi! Was getting an error when trying to generate the static HTML from a .doccarchive file.

    Could not process document at: /Users/rafael/Desktop/MyProject.doccarchive/data/documentation/myproject/http.json keyNotFound(CodingKeys(stringValue: "documentVersion", intValue: nil), Swift.DecodingError.Context(codingPath: [], debugDescription: "No value associated with key CodingKeys(stringValue: \"documentVersion\", intValue: nil) (\"documentVersion\").", underlyingError: nil)) It seems to happen for several different files throughout the project.

    Cheers!

    opened by Rvaler 11
  • GitHub Pages Deployment & Case Sensitive Links

    GitHub Pages Deployment & Case Sensitive Links

    First of all, thanks for the excellent work with this package @helje5 ! Thanks for filling in the hole of

    Deployment to GitHub Pages

    As noted in your README, deploying the generated HTML pages to GitHub Pages within a GitHub Action would be a helpful addition. I have played around with this and created the following action to do so and wanted to share this with you: https://github.com/Apodini/Template-Repository/blob/feature/docCGitHubPages/.github/workflows/docs.yml It uses xcodebuild to generate the documentation and your tool to generate a static HTML page that is then published to the gh-pages branch.

    Feel free to reuse and share this GitHub Action if you find it useful.

    Open Issues

    The GitHub Action is part of the following pull request to add this to our template repo: https://github.com/Apodini/Template-Repository/pull/8 . While working on the PR, I found the following issues that I wanted to share with you:

    1. GH Pages requires an index.html file at the root of the gh-pages branch. I have circumvented this by simply creating a basic HTML page in the GitHub Action that redirects to the index.html page found in the subfolders. It would probably be a nice addition to generate this directly using docc2html?
    2. As noted in the comments of https://github.com/Apodini/Template-Repository/pull/8 there is an issue with the links between the different HTML pages. As the name of the type as well as the name of the target contains upper case characters, the links result in 404 errors. I think the solution would be to either make sure that all links between pages are only using lowercase characters or changing the folder structure to allow upper case characters as found in the Swift types, functions, etc. What do you think?
    opened by PSchmiedmayer 6
  • Unsupported Inline Content Type

    Unsupported Inline Content Type "link" & Support for warning aside

    Using the newest 0.2.9 version:

    1. Unsupported Inline Content Type "link"

    2021-08-11T14:44:00+0200 error docc2html : Could not process document at: /Users/jakubtowarek/Projects/[reducted]/docc/Build/Products/Debug-iphoneos/[reducted].doccarchive/data/documentation/changelog.json unsupportedInlineContentType("link")
    

    Only JSON objects having "type": "link" are in the "references" object:

    "references": {
        "https://keepachangelog.com/en/1.0.0/": {
          "title": "Keep a Changelog",
          "titleInlineContent": [
            {
              "type": "text",
              "text": "Keep a Changelog"
            }
          ],
          "type": "link",
          "identifier": "https://keepachangelog.com/en/1.0.0/",
          "url": "https://keepachangelog.com/en/1.0.0/"
        },
        "https://github.com/3Qax": {
          "title": "@3Qax",
          "titleInlineContent": [
            {
              "type": "text",
              "text": "@3Qax"
            }
          ],
          "type": "link",
          "identifier": "https://github.com/3Qax",
          "url": "https://github.com/3Qax"
        },
        "https://semver.org/spec/v2.0.0.html": {
          "title": "Semantic Versioning",
          "titleInlineContent": [
            {
              "type": "text",
              "text": "Semantic Versioning"
            }
          ],
          "type": "link",
          "identifier": "https://semver.org/spec/v2.0.0.html",
          "url": "https://semver.org/spec/v2.0.0.html"
        },
        "doc://com.[reducted].[reducted]/documentation/[reducted]": {
          "role": "collection",
          "title": "[reducted]",
          "abstract": [
            {
              "type": "text",
              "text": "A iOS library of components, atoms and organisms for [reducted] consumer-facing products."
            }
          ],
          "identifier": "doc://com.[reducted].[reducted]/documentation/[reducted]",
          "kind": "symbol",
          "type": "topic",
          "url": "/documentation/[reducted]"
        }
      }
    

    from markdown like:

    # Changelog
    All notable changes to this project will be documented in this file.
    
    The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
    and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
    ...
    

    2. Support for warning aside

    ERROR: dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "primaryContentSections", intValue: nil), _JSONKey(stringValue: "Index 1", intValue: 1), CodingKeys(stringValue: "content", intValue: nil), _JSONKey(stringValue: "Index 1", intValue: 1), CodingKeys(stringValue: "style", intValue: nil)], debugDescription: "Cannot initialize Style from invalid String value warning", underlyingError: nil))
    2021-08-11T14:43:59+0200 error docc2html : Could not process document at: /Users/jakubtowarek/Projects/[reducted]/docc/Build/Products/Debug-iphoneos/[reducted].doccarchive/data/documentation/[reducted]/dscounter/count.json dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "primaryContentSections", intValue: nil), _JSONKey(stringValue: "Index 1", intValue: 1), CodingKeys(stringValue: "content", intValue: nil), _JSONKey(stringValue: "Index 1", intValue: 1), CodingKeys(stringValue: "style", intValue: nil)], debugDescription: "Cannot initialize Style from invalid String value warning", underlyingError: nil))
    

    for documentation generated for:

        /// Count
        /// - Warning: Values above `99` will be shown as `99+`.
        @IBInspectable public var count: UInt = 0
    

    or

        /// Count
        /// > Warning: Values above `99` will be shown as `99+`.
        @IBInspectable public var count: UInt = 0
    

    I took a peak at sources and I see DocCArchive.DocCSchema_0_1.Content.Style has only note style, while DocC seem to be defining:

    • Note
    • Important
    • Warning
    • Tip
    • Experiment
    bug help wanted 
    opened by 3Qax 4
  • Unsupported Fragment Kind

    Unsupported Fragment Kind "attribute"

    Hello, I absolutely love your project and I think it should be default for DocC to generate static pages.

    Here is one out of 3 errors I encountered while using this tool:

    ERROR: unsupportedFragmentKind("attribute")
    2021-08-11T11:52:44+0200 error docc2html : Could not process document at: /Users/jakubtowarek/Projects/[reducted]/docc/Build/Products/Debug-iphoneos/[reducted].doccarchive/data/documentation/[reducted]/dscounter/count.json unsupportedFragmentKind("attribute")
    

    in the following JSON file attribute is only in one place (at the very beginning) :

    {
      "primaryContentSections": [
        {
          "kind": "declarations",
          "declarations": [
            {
              "tokens": [
                {
                  "kind": "attribute",
                  "text": "@IBInspectable"
                },
    

    so I suppose there's an issue with parsing @IBInspecatble and @IBDesignable attributes. I am happy to provide any additional information that might be helpful to fix this :)

    opened by 3Qax 4
  • Fix typo in Site.css that caused a layout issue

    Fix typo in Site.css that caused a layout issue

    This used to cause excessive horizontal scrolling in below component, as .large-3 (50%) and .large-9 (75%) together had more than 125% width.

    https://github.com/DoccZz/docc2html/blob/5588eb6377339e8a982a74d5dfb34f2ed315f5a0/Templates/Sections.mustache#L7-L13

    opened by yujingaya 1
  • Current release 0.5.0 is not building

    Current release 0.5.0 is not building

    Hi!

    The dependency to DocCArchive in Package.swift

    .package(url  : "https://github.com/DoccZz/DocCArchive.git",
                 from : "0.3.2"),
    

    contains a .link case in https://github.com/DoccZz/DocCArchive/blob/develop/Sources/DocCArchive/Schema_0_1/References/Reference.swift#L24

    which is only considered in the latest commit https://github.com/DoccZz/docc2html/commit/5588eb6377339e8a982a74d5dfb34f2ed315f5a0 here.

    Please release a new version. Thank you!

    opened by marcusficner 1
  • Unsupported Content Type

    Unsupported Content Type "unorderedList"

    and the 3rd one, but the most painful since it's preventing my landing page's index.html generation:

    ERROR: unsupportedContentType("unorderedList")
    2021-08-11T11:52:45+0200 error docc2html : Could not process document at: /Users/jakubtowarek/Projects/[reducted]/docc/Build/Products/Debug-iphoneos/[reducted].doccarchive/data/documentation/[reducted]/changelog.json unsupportedContentType("unorderedList")
    
    {
      "primaryContentSections": [
        {
          "kind": "content",
          "content": [
            {
              "anchor": "Added",
              "level": 3,
              "type": "heading",
              "text": "Added"
            },
            {
              "type": "unorderedList",
              "items": [
                {
                  "content": [
                    {
                      "type": "paragraph",
                      "inlineContent": [
                        {
                          "type": "text",
                          "text": "Counter component "
                        },
                        {
                          "type": "reference",
                          "isActive": true,
                          "identifier": "https://github.com/3Qax"
                        }
                      ]
                    }
                  ]
                },
                {
                  "content": [
                    {
                      "type": "paragraph",
                      "inlineContent": [
                        {
                          "type": "text",
                          "text": "Changelog.md"
                        },
                        {
                          "overridingTitleInlineContent": [
                            {
                              "type": "text",
                              "text": "@3Qax"
                            }
                          ],
                          "isActive": true,
                          "type": "reference",
                          "identifier": "https://github.com/3Qax",
                          "overridingTitle": "@3Qax"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
      ],
      "schemaVersion": {
        "major": 0,
        "minor": 1,
        "patch": 0
      },
      "sections": [],
      "variants": [],
      "identifier": {},
      "abstract": [],
      "kind": "article",
      "metadata": {},
      "hierarchy": {},
      "documentVersion": 0,
      "references": {}
    }
    
    opened by 3Qax 1
  • Refactor code into a proper library

    Refactor code into a proper library

    The tool is quick and dirty hack, full of shortcuts :-)

    It would be nice to push the generation facility into a proper library that could also be embedded into other apps. Not a big job, just needs to be done.

    opened by helje5 1
  • Cannot initialize RoleHeading

    Cannot initialize RoleHeading

    Hello,

    i'm having trouble to generate an html document from the doccarchive. I looked through the list of issues (open & closed) and found someone had an simular issue here (in the second half) but i didnt get what to do. I'm running the latest xcode version (Version 13.4).

    Thanks in advance

    Here are the error from the console:

    ERROR: dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "metadata", intValue: nil), MetaDataCodingKeys(stringValue: "roleHeading", intValue: nil)], debugDescription: "Cannot initialize RoleHeading from invalid String value Application", underlyingError: nil)) 2022-05-23T23:57:39+0200 error docc2html : Could not process document at: /Users/Username/Desktop/RobotNavigation.doccarchive/data/documentation/robotnavigation.json dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "metadata", intValue: nil), MetaDataCodingKeys(stringValue: "roleHeading", intValue: nil)], debugDescription: "Cannot initialize RoleHeading from invalid String value Application", underlyingError: nil))

    and regarding to that error here is the "robotnavigation.json"

    {"variants":[{"paths":["\/documentation\/robotnavigation"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":2,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":""}],"kind":"symbol","metadata":{"roleHeading":"Application","externalID":"RobotNavigation","title":"RobotNavigation","symbolKind":"module","role":"collection","modules":[{"name":"RobotNavigation"}]},"hierarchy":{"paths":[[]]},"topicSections":[{"title":"Classes","identifiers":["doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/AppDelegate","doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/BlePeripheral","doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/NavigationViewController","doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/SceneDelegate","doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/ViewController"]},{"title":"Structures","identifiers":["doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/CBUUIDs"]}],"references":{"doc://com.lennart.RobotNavigation/documentation/RobotNavigation/ViewController":{"role":"symbol","title":"ViewController","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"ViewController"}],"abstract":[],"identifier":"doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/ViewController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ViewController"}],"url":"\/documentation\/robotnavigation\/viewcontroller"},"doc://com.lennart.RobotNavigation/documentation/RobotNavigation/SceneDelegate":{"role":"symbol","title":"SceneDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"SceneDelegate"}],"abstract":[],"identifier":"doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/SceneDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"SceneDelegate"}],"url":"\/documentation\/robotnavigation\/scenedelegate"},"doc://com.lennart.RobotNavigation/documentation/RobotNavigation/NavigationViewController":{"role":"symbol","title":"NavigationViewController","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"NavigationViewController"}],"abstract":[{"type":"text","text":"Description"}],"identifier":"doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/NavigationViewController","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NavigationViewController"}],"url":"\/documentation\/robotnavigation\/navigationviewcontroller"},"doc://com.lennart.RobotNavigation/documentation/RobotNavigation/AppDelegate":{"role":"symbol","title":"AppDelegate","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"AppDelegate"}],"abstract":[],"identifier":"doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/AppDelegate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"AppDelegate"}],"url":"\/documentation\/robotnavigation\/appdelegate"},"doc://com.lennart.RobotNavigation/documentation/RobotNavigation/CBUUIDs":{"role":"symbol","title":"CBUUIDs","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"CBUUIDs"}],"abstract":[],"identifier":"doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/CBUUIDs","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CBUUIDs"}],"url":"\/documentation\/robotnavigation\/cbuuids"},"doc://com.lennart.RobotNavigation/documentation/RobotNavigation":{"role":"collection","title":"RobotNavigation","abstract":[],"identifier":"doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation","kind":"symbol","type":"topic","url":"\/documentation\/robotnavigation"},"doc://com.lennart.RobotNavigation/documentation/RobotNavigation/BlePeripheral":{"role":"symbol","title":"BlePeripheral","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BlePeripheral"}],"abstract":[],"identifier":"doc:\/\/com.lennart.RobotNavigation\/documentation\/RobotNavigation\/BlePeripheral","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BlePeripheral"}],"url":"\/documentation\/robotnavigation\/bleperipheral"}}}

    bug 
    opened by lennbuch 0
  • Links Are Broken When Links Include Uppercase Characters

    Links Are Broken When Links Include Uppercase Characters

    Current Issue

    If the name of the type or the target's name contains upper case characters results in links generated by docc2html results in 404 errors. docc2html generates an html page for a taget named TargetName, type name TypeName, and function name test at the following path: /documentation/targetname/typename/test(_:).html even though the links embedded in other pages look like this /documentation/TargetName/TypeName/test(_:).html.

    You can reproduce the issue in the following GitHub Pages based deployment: https://apodini.github.io/Template-Repository/documentation/apodinitemplate/apodinitemplate/index.html The link to the greet function in the HTML page is https://apodini.github.io/Template-Repository/documentation/ApodiniTemplate/ApodiniTemplate/greet(_:).html while the HTML page can be found at https://apodini.github.io/Template-Repository/documentation/apodinitemplate/apodinitemplate/greet(_:).html

    Related Issues

    The issue was first noted in issue #13

    opened by PSchmiedmayer 0
  • Decoding error when RoleHeading is Type Method

    Decoding error when RoleHeading is Type Method

    ERROR: dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "metadata", intValue: nil), MetaDataCodingKeys(stringValue: "roleHeading", intValue: nil)], debugDescription: "Cannot initialize RoleHeading from invalid String value Type Method", underlyingError: nil))
    2021-08-11T11:52:44+0200 error docc2html : Could not process document at: /Users/jakubtowarek/Projects/[reducted]/docc/Build/Products/Debug-iphoneos/[reducted].doccarchive/data/documentation/[reducted]/[reducted]/getvalue(key:).json dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "metadata", intValue: nil), MetaDataCodingKeys(stringValue: "roleHeading", intValue: nil)], debugDescription: "Cannot initialize RoleHeading from invalid String value Type Method", underlyingError: nil))
    
    {
      "primaryContentSections": [],
      "schemaVersion": {
        "major": 0,
        "minor": 1,
        "patch": 0
      },
      "sections": [],
      "variants": [],
      "identifier": {},
      "abstract": [],
      "kind": "symbol",
      "metadata": {
        "fragments": [
          {
            "kind": "keyword",
            "text": "class"
          },
          {
            "kind": "text",
            "text": " "
          },
          {
            "kind": "keyword",
            "text": "func"
          },
          {
            "kind": "text",
            "text": " "
          },
          {
            "kind": "identifier",
            "text": "getValue"
          },
          {
            "kind": "text",
            "text": "("
          },
          {
            "kind": "externalParam",
            "text": "key"
          },
          {
            "kind": "text",
            "text": ": "
          },
          {
            "kind": "typeIdentifier",
            "text": "String",
            "preciseIdentifier": "s:SS"
          },
          {
            "kind": "text",
            "text": "?) -> "
          },
          {
            "kind": "typeIdentifier",
            "text": "UIColor",
            "preciseIdentifier": "c:objc(cs)UIColor"
          },
          {
            "kind": "text",
            "text": "?"
          }
        ],
        "title": "getValue(key:)",
        "roleHeading": "Type Method",
        "role": "symbol",
        "symbolKind": "method",
        "externalID": "[reducted]",
        "modules": [
          {
            "name": "[reducted]"
          }
        ]
      },
      "hierarchy": {},
      "documentVersion": 0,
      "references": {}
    }
    
    opened by 3Qax 0
  • Add a Root Page to the Exported HTML Page

    Add a Root Page to the Exported HTML Page

    Current Issue

    docc2html currently doesn't produce an index.html file at the root of the exported folder that links to the generated HTML files documenting a target. When publishing the documentation as an HTML page, you need to generate an HTML page that links to the targets or automatically forwards to a target if only one target is present.

    You can see the issue in the following GitHub Pages based deployment: https://apodini.github.io/Template-Repository/ returns a 404 error. The DocC documentation is successfully found in the subfolders of the HTML export: https://apodini.github.io/Template-Repository/documentation/apodinitemplate/apodinitemplate/index.html

    Suggested Solution

    It would be great if docc2html could generate an index.html page listing all targets included in the exported documentation and linking to the related index.html pages in the subfolders. If there is only one exported target, the page should automatically link to the only target present in the documentation archive.

    Related Issues

    The issue was first noted in issue #13

    enhancement help wanted 
    opened by PSchmiedmayer 0
  • Add support for variants (light & dark mode)

    Add support for variants (light & dark mode)

    I think this can also be done using just plain CSS (switching the site on light or dark mode).

    A small JS button to let the user switch shouldn't be hard either?

    help wanted 
    opened by helje5 1
  • Add support for processing tutorial documents

    Add support for processing tutorial documents

    This mostly means adding support to generate task sections and figuring out how to generate the step-by-step things in a mostly static way (I guess some JS would be quite OK too).

    Also the CSS magic to position things.

    enhancement help wanted 
    opened by helje5 1
Releases(0.5.3)
  • 0.5.3(May 25, 2022)

    Support the "Application" RoleHeading, as reported in issue #20.

    Looks like the HTML generator doesn't currently look at the value though.

    Source code(tar.gz)
    Source code(zip)
  • 0.5.2(Jan 19, 2022)

  • 0.5.0(Jan 9, 2022)

    Markdown tables as emitted by:

    /**
     * | Column 1 Title | Column 2 Title       |
     * | -------------- | -------------------- |
     * | `case 1`       | Case 1 description.  |
     * | `case 2`       | Case 2 description.  |
     */
    

    can now be parsed by DocCArchive and rendered to HTML by docc2html.

    Only row header types are supported, presumably there are additional ones?

    Source code(tar.gz)
    Source code(zip)
  • 0.4.6(Jan 8, 2022)

    Uses a new DocZArchive version which fixes a change with size properties in Xcode 13.2.1.

    Also fixes https://github.com/DoccZz/docc2html/issues/15 (Links Are Broken When Links Include Uppercase Characters). Thanks!

    Source code(tar.gz)
    Source code(zip)
  • 0.4.5(Oct 4, 2021)

  • 0.4.3(Aug 11, 2021)

    This release supposedly fixes https://github.com/DoccZz/docc2html/issues/9 and https://github.com/DoccZz/docc2html/issues/10 - support for "Type Method" role heading and the attribute fragment kind.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Jul 6, 2021)

  • 0.3.0(Jul 5, 2021)

  • 0.2.0(Jul 5, 2021)

  • 0.1.0(Jul 2, 2021)

Owner
DocZ
Swift Tools to work with the DocC documentation system
DocZ
Swift-DocC is a documentation compiler for Swift frameworks and packages aimed at making it easy to write and publish great developer documentation.

Swift-DocC is a documentation compiler for Swift frameworks and packages aimed at making it easy to write and publish great developer docum

Apple 833 Jan 3, 2023
A small Swift tool/server to serve DocC archives to your browser

servedocc Small Swift script to serve "DocC" archives, a format to document Swift frameworks and packages: Documenting a Swift Framework or Package. N

DocZ 8 Jan 29, 2022
Simple and blunt static site generator

StaticSite This contains a bunch of helper functions to generate a static site in Swift.

objc.io 33 Dec 15, 2022
Objective-c code Apple style documentation set generator.

About appledoc IMPORTANT NOTICE: collaborators needed appledoc is command line tool that helps Objective-C developers generate Apple-like source code

tomaz 4.2k Dec 20, 2022
A documentation generator for Swift projects

swift-doc A package for generating documentation for Swift projects. Given a directory of Swift files, swift-doc generates HTML or CommonMark (Markdow

SwiftDoc 1.7k Dec 6, 2022
Mephisto - A command line tool to convert Comic Book Zip archives to PDF and share them over AirDrop

mephisto A command line tool written in Swift to convert Comic Book Zip archives

null 0 Feb 7, 2022
A collection of Swift Tutorials built with Apple's DocC.

Swift Tutorials This is not a package, it's just a bunch of tutorials This project uses Apple's DocC (Documentation Compiler) to create a set of Swift

Swift Innovators Network 11 Aug 9, 2022
Swift Package Manager command plugin for Swift-DocC

Swift-DocC Plugin The Swift-DocC plugin is a Swift Package Manager command plugin that supports building documentation for SwiftPM libraries and execu

Apple 225 Dec 24, 2022
É um Aplicativo que abre o link de um site através do URL.

Aplicativo-WebView É um Aplicativo que abre o link de um site atraves do URL. ?? Tecnologias Este projeto foi desenvolvido com as seguintes tecnologia

Nathan Pereira 4 Nov 11, 2021
AWS SDK for iOS. For more information, see our web site:

AWS SDK for iOS The AWS SDK for iOS provides a library and documentation for developers to build connected mobile applications using AWS. Features / A

AWS Amplify 1.6k Dec 26, 2022
SocialButtons - A plugin for Publish that allows you to easily embed social buttons (e.g. Tweet button) in your site

SocialButtons A plugin for Publish that allows you to easily embed social button

Alan Paiva 6 Dec 1, 2022
Validate that apple-app-site-association files are set up correctly

SwiftAASAValidator Validate that apple-app-site-association files are set up correctly The idea is you can use these functions in your test suite for

Ben Spratling IV 1 Apr 12, 2022
nef💊a toolset to ease the creation of documentation in the form of Xcode Playgrounds

nef, short for Nefertiti, mother of Ankhesenamun, is a toolset to ease the creation of documentation in the form of Xcode Playgrounds. It provides com

Bow 257 Dec 6, 2022
Generate Markdown documentation from source code

SourceDocs SourceDocs is a command line tool that generates markdown documentation files from inline source code comments. Similar to Sphinx or Jazzy,

Eneko Alonso 349 Dec 10, 2022
Generate Markdown documentation from source code

SourceDocs SourceDocs is a command line tool that generates markdown documentation files from inline source code comments. Similar to Sphinx or Jazzy,

Eneko Alonso 349 Dec 10, 2022
The iOS framework that grows only as fast as its documentation

Nimbus is an iOS framework whose feature set grows only as fast as its documentation. Support status Nimbus is in a supported maintenance mode, meanin

featherless 6.5k Nov 30, 2022
Code and documentation for my talk Anime-fy Yourself Using Core ML

Anime-fy Yourself Code and documentation for my talk Anime-fy Yourself Using Core ML Convert from PyTorch to Core ML To convert @bryandlee's PyTorch i

Yono Mittlefehldt 2 May 29, 2022
Dash-iOS - Dash gives your iPad and iPhone instant offline access to 200+ API documentation sets

Discontinued Dash for iOS was discontinued. Please check out Dash for macOS instead. Dash for iOS Dash gives your iPad and iPhone instant offline acce

Bogdan Popescu 7.1k Dec 29, 2022
 Sample iOS App - A collection of examples and patterns for Unit Testing, UI Testing, handling Result/Optionals, writing documentation

 Sample iOS App - A collection of examples and patterns for Unit Testing, UI Testing, handling Result/Optionals, writing documentation, and more

Soojin Ro 206 Dec 9, 2022
Extract English from Documentation Comment.

E2DC Extract English text from Swift's Documentation Comment. ドキュメンテーションコメントに書かれた英語を翻訳したい場合に、便利かもしれないツールです。 (現時点では Swift のみ大雑把に対応) 2022-03-29.7.59.48.

Yusuke Hosonuma 6 Jul 19, 2022